package com.chinasoft.controller;

import com.chinasoft.domain.City;
import com.chinasoft.domain.Person;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;

/**
 *  @RestController @RestController是@Controller+@ResponseBody注解的整合版，
 *  拥有两个注解的功能，既能当前Bean注入到IOC容器，
 *  又能让当前Controller的所有方法的返回值以Json响应；
 */
@RestController
public class TestController1 {
    @RequestMapping("/demo3")
    public City demo3(){
        return  new City(2,"Beijing",8000.0,true);//{"id":2,"cityName":"Beijing","capital":true,"gdp":8000.0}
    }

    /**
     *  @JsonIgnore 作用：将实体转换为json时指定忽略的属性；
     */

    /**
     * @JsonFormat 作用：将Date按照指定的格式转换为字符串
     */
    @RequestMapping("/demo4")
    public Person demo4(){
        //Date类型被转换成了毫秒值
        return new Person(1,"wangergou",22,new Date());// 使用前 {"id":1,"name":"wangergou","age":22,"birthday":1694055509928}
        //使用后 ：{"id":1,"name":"wangergou","age":22,"birthday":"2023-09-07 03:00:15"}
    }

    /**
     * @RequestBody 作用：获取请求体的内容
     * 注意：GET请求方式是没有请求体的；\
     * 还可以将请求体数据为Json的转换为Java实体类型；但要求本次请求类型必须为application/json
     */

    @RequestMapping("/demo5")
    public void domo5(@RequestBody City city){

        System.out.println(city);
    }

}
